package org.jeecg.modules.wms.vo;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * @Description: 采购订单VO
 * @Author: jeecg-boot
 * @Date: 2023-07-18
 * @Version: V1.0
 */
@Data
public class WmsPurchaseOrderVO implements Serializable {
    
    private static final long serialVersionUID = 1L;
    
    /**主键*/
    private String id;
    
    /**采购单号*/
    private String purchaseCode;
    
    /**采购单号 - 与实体类对应*/
    private String purchaseNo;
    
    /**采购日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date purchaseDate;
    
    /**预计到货日期*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
    @DateTimeFormat(pattern="yyyy-MM-dd")
    private Date expectedArrivalDate;
    
    /**供应商*/
    private String supplier;
    
    /**采购金额*/
    private BigDecimal amount;
    
    /**总金额 - 与实体类对应*/
    private BigDecimal totalAmount;
    
    /**状态（1-草稿，2-已提交，3-已审批，4-已完成，5-已取消）*/
    private Integer status;
    
    /**是否自动生成（0-否，1-是）*/
    private Integer isAutoGenerated;
    
    /**备注*/
    private String remark;
    
    /**创建人*/
    private String createBy;
    
    /**创建时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    
    /**更新人*/
    private String updateBy;
    
    /**更新时间*/
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    
    /**租户ID*/
    private String tenantId;
    
    /**采购明细列表*/
    private List<WmsPurchaseOrderDetailVO> detailList;

    private String approveBy;

    /**
     * 审核人员
     */
    private String approveName;
    /**
     * 审核人员时间
     */
    @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    private Date approveTime;
} 